/**
 * Copyright 2009 - ChunMap
 * 
 * 这个文件是ChunMap项目的一部分。
 * ChunMap是开源软件。
 * 你可以自由复制、传播本项目的下载包文件，但必须保持其完整性。
 * 我们不用对使用中的风险及由此造成的损失承担任何责任。
 * 详细情况请见《ChunMap许可协议》。

 * 想了解更多有关ChunMap的信息，请访问http://code.google.com/p/chunmap/
 */
package chunmap.orm.mapping.column;

import java.sql.ResultSet;

import chunmap.orm.mapping.Table;
import chunmap.orm.mapping.type.DataType;
import chunmap.util.Reflection;

/**
 * @author yangjiandong
 *
 */
public class Fk extends Column {
	
	private Table linkTable;

	public Fk(String jName,String dbName, DataType dataType,Table linkTable) {
		super(jName,dbName,dataType);
		this.linkTable=linkTable;
	}
	
	public Table getLinkTable(){return linkTable;}
	
	@Override
	public Object getValue(Object obj){
		Object value= super.getValue(obj);
		if(value==null) return null;
		return linkTable.getPk().getValue(value);
	}
	
	@Override
	public void readValue(Object obj,ResultSet rs){
		Object value=dataType.readData(rs, index+1);
		Reflection.setField(obj, dbName, value);
	}
}
